﻿// Raphaël Capocasale

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Te1Capocasale
    {
    class Cercles : Forme2D, ISurface
        {
        /*---------------------------------------------*\
        |*                 Attributs                   *|
        \*---------------------------------------------*/
        private double m_rayon;


        /*---------------------------------------------*\
        |*                Constructeur                 *|
        \*---------------------------------------------*/
        public Cercles()
            {
            m_rayon = DateTime.Now.Second;
            }


        /*---------------------------------------------*\
        |*               Methodes public               *|
        \*---------------------------------------------*/	
        /// <summary>
        /// Cette méthode calcule et retourne la surface du cercle à partir de l'attribut rayon
        /// </summary>
        /// <returns>surface</returns>
        double ISurface.calculerSurface()
            {
            return Math.PI * m_rayon * m_rayon;
            }

        /// <summary>
        /// Cette méthode calcule et retourne le périmètre du cercle à partir de l'attribut rayon
        /// </summary>
        /// <returns>périmètre</returns>
        double ISurface.calculerPerimetre()
            {
            return 4 * Math.PI * m_rayon;
            }

        /// <summary>
        /// Affichage spécifique aux cercles
        /// </summary>
        public override void afficher()
            {
            base.afficher();
            ISurface obj = (ISurface)this;
            double surface = obj.calculerSurface();
            double perimetre = obj.calculerPerimetre();
            System.Console.WriteLine("de type CERCLE. Ma surface est de "+surface+" et mon périmètre est de "+perimetre);
            }
        }
    }
